package com.dcms.admin.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.dcms.admin.bean.User;

public class UserInterceptor implements HandlerInterceptor{

    @Override
    public void afterCompletion(HttpServletRequest arg0,
                                HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {

    }

    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
                           Object arg2, ModelAndView arg3) throws Exception {

    }

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                             Object object) throws Exception {
        HttpSession session = request.getSession();
        String url = request.getRequestURI();
        String[] pathUrl = {"login", "logout", "static", "test"};

        for (int i = 0; i < pathUrl.length; i++) {
            if (url.contains(pathUrl[i])) {
                return true;
            }
        }

        User user = (User)session.getAttribute("USER");
        if(user != null){
            return true;
        }
        String base = request.getContextPath();
        response.sendRedirect( base + "/admin/login");
        return true;
    }

}
